<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<title>Qhull trace options (T)</title>
</head>

<body>
<!-- Navigation links -->
<p><b>Up:</b> <a href="http://www.qhull.org">Home page</a> for Qhull (<a href="../index.htm">local</a>)<br>
<b>Up:</b> <a href="index.htm#TOC">Qhull manual</a>: contents<br>
<b>To:</b> <a href="qh-quick.htm#programs">Programs</a>
&#149; <a href="qh-quick.htm#options">Options</a>
&#149; <a href="qh-opto.htm#output">Output</a>
&#149; <a href="qh-optf.htm#format">Formats</a>
&#149; <a href="qh-optg.htm#geomview">Geomview</a>
&#149; <a href="qh-optp.htm#print">Print</a>
&#149; <a href="qh-optq.htm#qhull">Qhull</a>
&#149; <a href="qh-optc.htm#prec">Precision</a>
&#149; <a href="qh-optt.htm#trace">Trace</a>
&#149; <a href="http://www.qhull.org/src/libqhull_r/index.htm">Functions</a> (<a href="../src/libqhull_r/index.htm">local</a>)</p>

<hr>
<!-- Main text of document -->
<h1><a
href="http://www.geom.uiuc.edu/graphics/pix/Special_Topics/Computational_Geometry/delaunay.html"><img
src="qh--dt.gif" alt="[delaunay]" align="middle" width="100"
height="100"></a> Qhull trace options (T)</h1>

This section lists the trace options for Qhull. These options are
indicated by 'T' followed by a letter.

<p><b>Copyright &copy; 1995-2020 C.B. Barber</b></p>

<hr>

<p><a href="index.htm#TOC">&#187;</a> <a href="qh-quick.htm#programs">Programs</a>
<a name="trace">&#149;</a> <a href="qh-quick.htm#options">Options</a>
&#149; <a href="qh-opto.htm#output">Output</a>
&#149; <a href="qh-optf.htm#format">Formats</a>
&#149; <a href="qh-optg.htm#geomview">Geomview</a>
&#149; <a href="qh-optp.htm#print">Print</a>
&#149; <a href="qh-optq.htm#qhull">Qhull</a>
&#149; <a href="qh-optc.htm#prec">Precision</a>
&#149; <a href="qh-optt.htm#trace">Trace</a>
&#149; <a href="http://www.qhull.org/src/libqhull_r/index.htm">Functions</a> (<a href="../src/libqhull_r/index.htm">local</a>)</p>

<h2>Trace options</h2>

<dl compact>
    <dt>&nbsp;</dt>
    <dd><b>General</b></dd>
    <dt><a href="#Ta">Ta</a></dt>
    <dd>annotate output with message codes</dd>
    <dt><a href="#TFn">TFn</a></dt>
    <dd>report progress whenever n or more facets created</dd>
    <dt><a href="#TI">TI file</a></dt>
    <dd>input data from a file</dd>
    <dt><a href="#TO">TO file</a></dt>
    <dd>output results to a file</dd>
    <dt><a href="#Ts">Ts</a></dt>
    <dd>print statistics</dd>
    <dt><a href="#Tv">Tv</a></dt>
    <dd>verify result: structure, convexity, and point inclusion</dd>
    <dt><a href="#Tz">Tz</a></dt>
    <dd>output error information to stdout instead of stderr</dd>

    <dt>&nbsp;</dt>
    <dt>&nbsp;</dt>
    <dd><b>Debugging</b></dd>
    <dt><a href="#Tn">T4</a></dt>
    <dd>trace at level n, 4=all, 5=mem/gauss, -1= events</dd>
    <dt><a href="#TAn">TAn</a></dt>
    <dd>stop after adding n vertices</dd>
    <dt><a href="#Tc">Tc</a></dt>
    <dd>check frequently during execution</dd>
    <dt><a href="#TCn">TCn</a></dt>
    <dd>stop qhull after building cone for point n</dd>
    <dt><a href="#Tf">Tf</a></dt>
    <dd>flush each qh_fprintf for debugging segfaults</dd>
    <dt><a href="#TMn">TMn</a></dt>
    <dd>turn on tracing at merge n</dd>
    <dt><a href="#TPn">TPn</a></dt>
    <dd>turn on tracing when point n added to hull</dd>
    <dt><a href="#TRn">TRn</a></dt>
    <dd>rerun qhull n times for QJn statistics</dd>
    <dt><a href="#TVn">TV-n</a></dt>
    <dd>stop qhull before adding point n</dd>
    <dt><a href="#TVn2">TVn</a></dt>
    <dd>stop qhull after adding point n </dd>
    <dt><a href="#TWn">TWn</a></dt>
    <dd>trace merge facets when width &gt; n</dd>
</dl>

<hr>

<h3><a href="#trace">&#187;</a><a name="Ta">Ta - annotate output with message codes</a></h3>

<p>With option 'Ta', Qhull annotates output with message codes.  Programmers may use these
codes to trap the corresponding print statements.</p>

<h3><a href="#trace">&#187;</a><a name="TAn">TAn - stop Qhull after adding n vertices</a></h3>

<p>With option 'TAn', Qhull stops after adding n vertices.
See option '<a href="#TVn2">TVn</a>' to stop after
adding point n.</p>

<h3><a href="#trace">&#187;</a><a name="Tc">Tc - check frequently during execution</a></h3>

<p>Qhull includes frequent checks of its data structures. Option
'Tc' will catch most inconsistency errors. It is slow and should
not be used for production runs. Option '<a href="#Tv">Tv</a>'
performs the same checks after the hull is constructed.  Tracing ('<a href="#Tn">T4</a>')
adds additional calls to qh_checkconvex, qh_checkpolygon, and qh_checkfacet.

<h3><a href="#trace">&#187;</a><a name="TCn">TCn - stop qhull after
building cone for point n</a></h3>

<p>Qhull builds a cone from the point to its horizon facets.
Option 'TCn' stops Qhull just after building the cone. The output
for '<a href="qh-opto.htm#f">f</a>' includes the cone and the old
hull.'. </p>

<h3><a href="#trace">&#187;</a><a name="Tf">Tf - flush each
qh_fprintf for debugging segfaults</a></h3>

<p>Option 'Tf' flushes each qh_fprintf for debugging segfaults.</p>

<p>See option '<a href="#Tz">Tz</a>' for redirecting stderr.</p>

<h3><a href="#trace">&#187;</a><a name="TFn">TFn - report summary whenever n or more facets created</a></h3>

<p>Option 'TFn' reports progress whenever more than n facets are
created. The test occurs just before adding a new point to the
hull. During post-merging, 'TFn' reports progress after more than
<i>n/2</i> merges. </p>

<h3><a href="#trace">&#187;</a><a name="TI">TI file - input data from file</a></h3>

<p>Input data from 'file' instead of stdin.  The filename may be enclosed in
single quotes.  If the filename does not contain spaces, TIfile is OK.</p>

<p>You may use I/O redirection
instead (e.g., 'rbox 10 | qdelaunay >results').</P>

<h3><a href="#trace">&#187;</a><a name="TMn">TMn - turn on tracing at merge n</a></h3>

<p>Turn on tracing at n'th merge. </p>

<h3><a href="#trace">&#187;</a><a name="Tn">Tn - trace at level n</a></h3>

<p>Qhull includes full execution tracing. 'T-1' traces events.
'T1' traces the overall execution of the program. 'T2' and 'T3'
trace overall execution, and geometric, topological, and merge events.
'T4' is the detailed trace of Qhull. 'T5' adds information about memory
allocation and Gaussian elimination. 'T1' is useful for logging
progress of Qhull in high dimensions.  See
<a href="qh-code.htm#debugging">Debugging Qhull</a>. </p>

<p>Option 'Tn' can produce large amounts of output. Use options '<a
href="#TPn">TPn</a>', '<a href="#TWn">TWn</a>', and '<a href="#TMn">TMn</a>' to selectively
turn on tracing. Since all errors report the last processed
point, option '<a href="#TPn">TPn</a>' is particularly useful.</p>

<p>Different executions of the same program may produce different
traces and different results.  The reason is that Qhull uses hashing
to match ridges of non-simplicial facets.  For performance reasons,
the hash computation uses
memory addresses which may change across executions.

<h3><a href="#trace">&#187;</a><a name="TO">TO file - output results to file</a></h3>

<p>Redirect stdout to 'file'.  The filename may be enclosed in
single quotes.  If the filename does not contain spaces, TOfile is OK.  Unix and Windows NT users may use I/O
redirection instead of 'TO' (e.g., 'rbox 10 | qdelaunay >results').</P>
<p>
Windows95 users should always use 'TO file'.  If they use I/O redirection,
error output is not sent to the console.  Qhull uses single quotes instead
of double quotes because a missing double quote can
freeze Windows95 (e.g., do not run, rbox 10 | qhull TO &quot;x)</p>
<p>

<h3><a href="#trace">&#187;</a><a name="TPn">TPn - turn on tracing
when point n added to hull</a></h3>

<p>Option 'TPn' turns on tracing when point n is added to
the hull.  It also traces partitions of point n.  This option
reduces the output size when tracing.  It is the normal
method to determine the cause of a Qhull error. All Qhull errors
report the last point added.

<p>Use option 'TP-1' to turn on tracing after qh_buildhull and qh_postmerge.</p>

<p>Use options 'TPn <a href="qh-optt.htm#TVn">TVn</a>' to
trace the addition of point n to the convex hull and stop when done.</p>

<p>If used with option '<a href="qh-optt.htm#TWn">TWn</a>',
'TPn' turns off tracing after adding point n to the hull.
Use options 'TPn TWn' to
trace the addition of point n to the convex hull, partitions
of point n, and wide merges.</p>

<h3><a href="#trace">&#187;</a><a name="TRn">TRn - rerun qhull n times for QJn statistics</a></h3>

<p>Option 'TRn' reruns Qhull n times.  It is used
with '<a href="qh-optq.htm#QJn">QJn</a>' to determine the probability
that a given joggle will fail.  The summary
('<a href="qh-opto.htm#s">s</a>') lists the failure
rate and the precision errors that occurred.
Option '<a href="#Ts">Ts</a>' will report statistics for
all of the runs.  Trace and output options only apply to the last
run.  An event trace, '<a href="#Tn">T-1</a>' reports events for all runs.

<p>Tracing applies to the last run of Qhull.  If an error
is reported, the options list the run number as "_run".
To trace this run, set 'TRn' to the same value.</p>

<h3><a href="#trace">&#187;</a><a name="Ts">Ts - print statistics</a></h3>

<p>Option 'Ts' collects statistics and prints them to stderr. For
Delaunay triangulations, the angle statistics are restricted to
the lower or upper envelope.</p>

<h3><a href="#trace">&#187;</a><a name="Tv">Tv - verify result:
structure, convexity, and point inclusion</a></h3>

<p>Option 'Tv' checks the topological structure, flipped facets, and
point inclusion. Facet convexity is tested if not merging or if 2-D/3-D and a merged facet.
If precision problems occur, flipped facet tests and facet convexity tests occur whether or not
'Tv' is selected.  Option 'Tv' does not
check point inclusion if forcing output with '<a
href="qh-optp.htm#Po">Po</a>', or if '<a href="qh-optq.htm#Q5">Q5</a>'
is set. </p>

<p>The convex hull of a set of points is the smallest polytope
that includes the points. Option 'Tv' tests point inclusion.
Qhull verifies that all points are below all outer planes
(facet-&gt;maxoutside). Point inclusion is exhaustive if merging
or if the facet-point product is small enough; otherwise Qhull
verifies each point with a directed search (qh_findbest). To
force an exhaustive test when using option '<a
href="qh-optc.htm#C0">C-0</a>' (default), use 'C-1e-30' instead. </p>

<p>Point inclusion testing occurs after producing output. It
prints a message to stderr unless option '<a
href="qh-optp.htm#Pp">Pp</a>' is used. This allows the user to
interrupt Qhull without changing the output. </p>

<p>With '<a href=qvoronoi.htm>qvoronoi</a> <a href="qh-optf.htm#Fi2">Fi</a>',
option 'Tv' collects statistics that verify all Voronoi vertices lie
on the separating hyperplane, and all
separating hyperplanes are perpendicular bisectors.

<h3><a href="#trace">&#187;</a><a name="TVn">TV-n - stop qhull before
adding point n</a></h3>

<p>Qhull adds one point at a time to the convex hull. See <a
href="qh-eg.htm#how">how Qhull adds a point</a>. Option 'TV-n'
stops Qhull just before adding a new point. Output shows the hull
at this time.</p>

<h3><a href="#trace">&#187;</a><a name="TVn2">TVn - stop qhull after
adding point n</a></h3>

<p>Option 'TVn' stops Qhull after it has added point n and before it deletes
the visible facets.  If facet merges lead to vertex merges, 'TVn' stops after
vertex merges and deleting visible facets.   Output
shows the hull at this time.  See option '<a href="#TAn">TAn</a>' to stop after
adding n vertices. </p>

<h3><a href="#trace">&#187;</a><a name="TWn">TWn - trace merge facets
when width &gt; n</a></h3>

<p>Along with TMn, this option allows the user to determine the
cause of a wide merge.</p>

<h3><a href="#trace">&#187;</a><a name="Tz">Tz - send all output to stdout</a></h3>

<p>Redirect stderr to stdout.  See option '<a href="#Tf">Tf</a>' for flushing writes.</p>

<!-- Navigation links -->
<hr>

<p><b>Up:</b> <a href="http://www.qhull.org">Home page</a> for Qhull (<a href="../index.htm">local</a>)<br>
<b>Up:</b> <a href="index.htm#TOC">Qhull manual</a>: contents<br>
<b>To:</b> <a href="qh-quick.htm#programs">Programs</a>
&#149; <a href="qh-quick.htm#options">Options</a>
&#149; <a href="qh-opto.htm#output">Output</a>
&#149; <a href="qh-optf.htm#format">Formats</a>
&#149; <a href="qh-optg.htm#geomview">Geomview</a>
&#149; <a href="qh-optp.htm#print">Print</a>
&#149; <a href="qh-optq.htm#qhull">Qhull</a>
&#149; <a href="qh-optc.htm#prec">Precision</a>
&#149; <a href="qh-optt.htm#trace">Trace</a>
&#149; <a href="http://www.qhull.org/src/libqhull_r/index.htm">Functions</a> (<a href="../src/libqhull_r/index.htm">local</a>)</p>
<!-- GC common information -->
<hr>

<p><a href="http://www.geom.uiuc.edu/"><img src="qh--geom.gif"
align="middle" width="40" height="40"></a><i>The Geometry Center
Home Page </i></p>

<p>Comments to: <a href=mailto:qhull@qhull.org>qhull@qhull.org</a>
<br>
Created: Sept. 25, 1995 --- <!-- hhmts start --> Last modified: see top <!-- hhmts end --> </p>
</body>
</html>
